/**
 * @version Create on 2012-11-13
 * @author Yinzi Chen
 */

public class SwapNodesInPairs {

	class ListNode {
		int val;
		ListNode next;

		ListNode(int x) {
			val = x;
			next = null;
		}
	}

	public void swapPairs(ListNode prev, ListNode cur) {
		if (cur == null || cur.next == null)
			return;
		prev.next = cur.next;
		cur.next = cur.next.next;
		prev.next.next = cur;
		swapPairs(cur, cur.next);
	}

	public ListNode swapPairs(ListNode head) {
		ListNode root = new ListNode(0);
		root.next = head;
		swapPairs(root, root.next);
		return root.next;
	}

	public static void main(String[] args) {

	}

}
